# -*- coding: utf-8 -*-
# author: Eduardo Cardeira
# date: 28/10/2013
# obs.: Exemplos da Aula 6

import os, shutil
#diretoria de trabalho
print os.getcwd()
# mudança de diretoria
os.chdir("/home/user/Documentos")
# executar um comando
print dir(os)
os.system("ls")
os.system("ps u")
help(os)

# executar chamando
# python sisop2.py andam a roubar
import glob
lista_ficheiros = glob.glob("*")
for ficheiro in lista_ficheiros:
    print
    print "nome do ficheiro:          ", ficheiro
    print "comprimento do nome do ficheiro = {}".format(len(ficheiro))
import sys
print sys.argv + ['no', 'meu', 'bolso']
sys.stderr.write("erro de execucao")
#sys.exit()

import re
str1 = 'Se urso vires foge tocando gaita para Hamburgo'
lista = re.findall(r'\bg[a-z]*', str1)
print lista

print re.sub(r'(b[a-z]+) \1', r'\1', 'cat in the the hat')
print str1.replace('gaita', 'flauta')

#ficheiro = open("teste.text", "r")
#texto = ficheiro.read()
#ficheiro.close()
#texto = re.sub(r'a', 'u', texto)
#print texto

import random, math
# lista de 10 aleatorios distribuidos uniformemente entre 0 e 1
lista = [random.uniform(0, 1) for x in xrange(10)]
print lista
# e agora a lista de senos
lista_senos = map(math.sin, lista)
print lista_senos
# e a sua soma
soma = sum(lista_senos)
# e finalmente o seu quadrado
print math.sqrt(soma)

import smtplib, urllib2, SimpleHTTPServer, SocketServer
for line in urllib2.urlopen('http://www.publico.pt'):
    if 'Coelho' in line or 'Jardim' in line or 'Raspadinha' in line:
        print line
# http://www.e-eeasy.com/SMTPServerList.aspx
server = smtplib.SMTP('smtp.cheapnet.it')
try:
    server.sendmail('xxx@yyy.com', 'zzz@treta.com', """TESTE""")
    server.quit()
except: pass
PORT = 8000
Handler = SimpleHTTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
httpd.serve_forever()

import time
t1 = time.clock()
# fazer algo de lento ...
t2 = time.clock()
print "tempo decorrido", t2-t1
from datetime import date
agora = date.today()
print agora
print date(2013, 10, 28)
aniversario = date(1963, 3, 15)
idade = agora - aniversario
print "idade em dias", idade

import threading, zipfile

class AsyncZip(threading.Thread):
    def __init__(self, infile, outfile):
        threading.Thread.__init__(self)
        self.infile = infile
        self.outfile = outfile
    def run(self):
        f = zipfile.ZipFile(self.outfile, 'w', zipfile.ZIP_DEFLATED)
        f.write(self.infile)
        f.close()
        print 'Finished background zip of: ', self.infile

background = AsyncZip('mydata.txt', 'myarchive.zip')
background.start()

